Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO


■Power Management Controller
Target           PC-9801NV/NS/E/NC
                 PC-9801NS/T/NL/NS/L/NA/NS/R/P/NX/C/NS/A/NL/R/NL/A
                 PC-9821Ne/Np/Ns/Ne2/Nd/Es/Ld/Lt/Nf/Nm
Explanation    o The resume-enabled 98NOTE series is equipped with special
                 hardware to save various hardware settings that cannot normally be read. Most
                 hardware settings can be read through this power management controller.
               o The power management controller is accessed through two-stage I/O.
                 There are also registers that can be read all related information at once by
                 reading them consecutively.
               o Some desktop models also have models that control special hardware using the
                 same access method as the 98NOTE series.


I/O              08F0h
Name             Power Management Controller [INDEX]
                 Undocumented
Function
                 [READ/WRITE]
                 Bit 15-0: Resume Controller Register

Explanation    o Pairs with I/O 08F2h to perform two-stage I/O operations
Related          I/O 08F2h


I/O              08F2h
Name             Power management controller [DATA]
                 Undocumented
Function
                 [READ/WRITE]
                 Bit 15-0: Resume controller data input/output

                 ----------------+---+----------------------------------------------
                 Register number |IND|
                             |R/W| EX| Contents
                 ------------+---+---+------------------------------------------
                 0000h       |R/W|   | 2DD/2HD
                             |   |   | Bit 15-9: Unused
                             |   |   | Bit 8: EMTOM
                             |   |   | Bit 7-0: Unused
                 ------------+---+---+----------------------------------------------
                 0001h       | R |   | Read master PIC setting information
                             |   +---+----------------------------------------------
                             |   | 0 | Bit 15-8: Unused
                             |   |   | Bit 7-0: Master PIC ICW1
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW2 of master PIC
                             |   +---+----------------------------------------------
                             |   | 2 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW3 of master PIC
                             |   +---+----------------------------------------------
                             |   | 3 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW4 of master PIC
                 ------------+---+---+----------------------------------------------
                 0002h       | R |   | Read configuration information of slave PIC
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW1 of slave PIC
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW2 of slave PIC
                             |   +---+----------------------------------------------
                             |   | 2 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW3 of slave PIC
                             |   +---+----------------------------------------------
                             |   | 3 | bit 15-8: Unused
                             |   |   | bit 7-0: ICW4 of slave PIC
                 ------------+---+---+----------------------------------------------
                 0003h       | R |   | Read USART settings (keyboard)
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-8: USART command set
                             |   |   | bit 7-0: USART command set
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-8: USART command set
                             |   |   | bit 7-0: USART command set
                 ------------+---+---+----------------------------------------------
                 0004h       | R |   | Read USART settings (RS-232C)
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-8: USART command set
                             |   |   | bit 7-0: USART command set
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-8: USART command set
                             |   |   | bit 7-0: USART command set
                 ------------+---+---+----------------------------------------------
                 0005h       | R |   | Read TCU setting
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-0: Counter #0 setting
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-0: Counter #1 setting
                             |   +---+----------------------------------------------
                             |   | 2 | bit 15-0: Counter #2 setting
                             |   +---+----------------------------------------------
                             |   | 3 | bit 15-0: Unused
                 ------------+---+---+----------------------------------------------
                 0006h       | R |   | Read memory bank switching
                             |   |   | bit 15-8: Memory address (A23-A20)
                             |   |   | * Value to write to I/O 08E9h
                             |   |   | bit 7-5: Unused
                             |   |   | bit 4: 8,9 bank control
                             |   |   |   0 = Internal RAM selection
                             |   |   |   1 = Expansion slot selection
                             |   |   | bit 3-1: Unknown
                             |   |   | bit 0: B bank page frame
                             |   |   |   0 = VRAM
                             |   |   |   1 = EMS
                             |   |   | Related I/O 08E9h
                             |   |   | I/O 043Fh
                 ------------+---+---+----------------------------------------------
                 0007h       | R |   | Unknown
                             |   |   | Related I/O 053Dh
                 ------------+---+---+----------------------------------------------
                 0008h       | R |   | EMS page #0 map
                             |   |   | bit 15-8: Memory address (A23-A20)
                             |   |   | * Value to write to I/O 08E9h
                             |   |   | bit 7-0: EMS page #0 (C0000h) selection
                             |   |   | * Value to write to I/O 08E1h
                 ------------+---+---+----------------------------------------------
                 0009h       | R |   | EMS page #1 map
                             |   |   | bits 15-8: Memory address (A23-A20)
                             |   |   | * Value to write to I/O 08E9h
                             |   |   | bits 7-0: EMS page #1 (C4000h) selection
                             |   |   | * Value to write to I/O 08E3h
                 ------------+---+---+----------------------------------------------
                 000Ah       | R |   | EMS page #2 map
                             |   |   | bit15-8: Memory address (A23-A20)
                             |   |   | * Value to write to I/O 08E9h
                             |   |   | bit 7-0: Select EMS page #1 (C8000h)
                             |   |   | * Value to write to I/O 08E5h
                 ------------+---+---+----------------------------------------------
                 000Bh       | R |   | EMS page #3 map
                             |   |   | bit15-8: Memory address (A23-A20)
                             |   |   | * Value to write to I/O 08E9h
                             |   |   | bit 7-0: Select EMS page #3 (CC000h)
                             |   |   | * Value to write to I/O 08E7h
                 ------------+---+---+----------------------------------------------
                 000Ch       | R |   | Read card switch
                             |   |   | bits 15-8: Unused
                             |   |   | bits 7-0: Card switch information
                 ------------+---+---+----------------------------------------------
                 000Dh       | R |   | Calendar clock IC
                             |   |   | bits 15-8: Value sent to calendar clock IC (I/O port 20h)
                             |   |   | bits 7-0: Unused
                 ------------+---+---+----------------------------------------------
                 0010h       |R/W|   | Unknown
                 ------------+---+---+----------------------------------------------
                 0011h       | R |   | Read text GDC setting information
                             |   +---+----------------------------------------------
                             |   |0-3|SYNC parameters
                             |   | 4 |PITCH parameters
                             |   |5,6|CSRFORM parameters
                             |   |7~14|SCROLL parameters
                 ------------+---+---+----------------------------------------------
                 0012h       | R |   | Read graphic mode F/F settings
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-11: Unused?
                             |   |   | bit 10: Drawing surface
                             |   |   |   0 = Front side drawing
                             |   |   |   1 = Back side drawing
                             |   |   | bit 9: Display surface
                             |   |   |   0 = Front side display
                             |   |   |   1 = Back side display
                             |   |   | bit 8: Unused?
                             |   |   | bit 7: DISP ENABLE
                             |   |   |   0 = Display OFF
                             |   |   |   1 = Display ON
                             |   |   | bit 6: MVMW PERMIT
                             |   |   |   0 = INHIBIT
                             |   |   |   1 = PERMIT
                             |   |   | bit 5: KAC mode
                             |   |   |   0 = Code access
                             |   |   |   1 = Bitmap
                             |   |   | bit 4: GRP Mode
                             |   |   |   0 = Dedicated high resolution 400 lines, standard resolution
                             |   |   |   1 = Dedicated high resolution display with 200 lines
                             |   |   |   Used in mode graph
                             |   |   | bit 3: FONT SEL
                             |   |   |   0 = 6x8 dots
                             |   |   |   1 = 7x13 dots
                             |   |   | bit 2: Column WIDTH
                             |   |   |   0 = 80 character mode
                             |   |   |   1 = 40 character mode
                             |   |   | bit 1: GRAPHIC Mode
                             |   |   |   0 = Color graphic mode
                             |   |   |   1 = Monochrome graphic mode
                             |   |   | bit 0: ATR7SEL
                             |   |   |   0 = ATR7 is vertical line
                             |   |   |   1 = ATR7 is simple graph
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-11: Unused?
                             |   |   | bit 10: Mode F/F change
                             |   |   |   0 = Prohibited
                             |   |   |   1 = Enable
                             |   |   | bit 9,8: Unused?
                             |   |   | bit 7: G-GDC slave
                             |   |   |   0 = Slave
                             |   |   |   1 = Master
                             |   |   | bit 6: GDC clock #1
                             |   |   |   0 = 2.5MHz
                             |   |   |   1 = 5.0MHz
                             |   |   | bit 5: GDC clock #0
                             |   |   |   0 = 2.5MHz
                             |   |   |   1 = 5.0MHz
                             |   |   | bit 4: Unused?
                             |   |   | bit 3: 1 dot feed
                             |   |   |   0 = No
                             |   |   |   1 = Yes
                             |   |   | bit 2: CRT/Plasma
                             |   |   |   0 = CRT mode
                             |   |   |   1 = Plasma display/LCD mode
                             |   |   | bit 1: EGC mode
                             |   |   |   0 = GRCG compatible mode
                             |   |   |   1 = EGC extended mode
                             |   |   | bit 0: Analog graphics mode
                             |   |   |   0 = 8 color mode
                             |   |   |   1 = 16 color mode
                 ------------+---+---+----------------------------------------------
                 0013h       | R |   | Read graphic palette
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15: Unused
                             |   |   | bit 14-12: 8-color mode palette register #0
                             |   |   | bit 11: Unused
                             |   |   | bit 10-8: 8-color mode palette register #4
                             |   |   | bit 7: Unused
                             |   |   | bit 6-4: 8-color mode palette register #2
                             |   |   | bit 3: Unused
                             |   |   | bit 2-0: 8-color mode palette register #6
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15: Unused
                             |   |   | bit 14-12: 8-color mode palette register #1
                             |   |   | bit 11: Unused
                             |   |   | bit 10-8: 8-color mode palette register #5
                             |   |   | bit 7: Unused
                             |   |   | bit 6-4: 8-color mode palette register #3
                             |   |   | bit 3: Unused
                             |   |   | bit 2-0: 8-color mode palette register #7
                             |   +---+----------------------------------------------
                             |   | 2 | bit 15-12: Unused
                             |   |   | bit 11-8: Blue brightness of 16-color mode palette #0
                             |   |   | bit 7-4: Red brightness of 16-color mode palette #0
                             |   |   | bit 3-0: Green brightness of 16-color mode palette #0
                             |   +---+----------------------------------------------
                             |   | 3 | bit 15-12: Unused
                             |   |   | bit 11-8: Blue brightness of 16-color mode palette #1
                             |   |   | bit 7-4: Red brightness of 16-color mode palette #1
                             |   |   | bit 3-0: Green brightness of 16-color mode palette #1
                             |   +---+----------------------------------------------
                             |   |4~16| Same as above
                             |   +---+----------------------------------------------
                             |   | 17| bit 15-12: Unused
                             |   |   | bit 11-8: Blue brightness of 16-color mode palette #15
                             |   |   | bit 7-4: Red brightness of 16-color mode palette #15
                             |   |   | bit 3-0: Green brightness of 16-color mode palette #15
                             |   +---+----------------------------------------------
                             |   | 18| bit 15-8: Unused
                             |   |   | bit 7: 0
                             |   |   | bit 6-4: Border color (006Ch)
                             |   |   | bit 3-0: Last set to I/O port 00A8h
                             |   |   | Palette number
                 ------------+---+---+----------------------------------------------
                 0014h       |R/W|   | Read GRCG read register
                             |   +---+----------------------------------------------
                             |   | 0 | bit 15-10: Unused
                             |   |   | bit 9,8: Tile pattern register counter
                             |   |   |   00b = Register #0
                             |   |   |   01b = Register #1
                             |   |   |   10b = Register #2
                             |   |   |   11b = Register #3
                             |   |   |   * Indicates the number of the next register to write
                             |   |   | Related I/O 007Eh
                             |   |   | bit 7: CGW
                             |   |   | bit 6: RMW
                             |   |   | bit 5,4: Unused
                             |   |   | bit 3-0: PE3-0
                             |   |   | * Read GRCG control register.
                             |   |   | Related I/O 007Ch
                             |   +---+----------------------------------------------
                             |   | 1 | bit 15-8: Unused
                             |   |   | bit 7-0: Tile pattern register #0
                             |   |   | Related I/O 007Eh
                             |   +---+----------------------------------------------
                             |   | 2 | bit 15-8: Unused
                             |   |   | bit 7-0: Tile pattern register #1
                             |   |   | Related I/O 007Eh
                             |   +---+----------------------------------------------
                             |   | 3 | bit 15-8: Unused
                             |   |   | bit 7-0: Tile pattern register #2
                             |   |   | Related I/O 007Eh
                             |   +---+----------------------------------------------
                             |   | 4 | bit 15-8: Unused
                             |   |   | bit 7-0: Tile pattern register #3
                             |   |   | Related I/O 007Eh
                 ------------+---+---+----------------------------------------------
                 0015h       | W |   | Unknown
                             |   |   | bit 15-13: Unused
                             |   |   | bit 12-8: Unknown
                             |   |   | bit 7: Unused
                             |   |   | bit 6-4: Unknown
                             |   |   | bit 3: Unused
                             |   |   | bit 2-0: Unknown
                             |   |   | * VRAM related
                 ------------+---+---+----------------------------------------------
                 0016h       | W |   | Clock generator program mask
                             |   |   | ■[PC-9821Bp, Bs, Be, Bf, Xt, Xa, Xn, Xp, Xs, Xe,
                             |   |   | PC-9801BX2, BS2, BA2, BA3, BX3, BX4, NS/A]
                             |   |   | bit 15-1: Unused? (set to 0)
                             |   |   | bit 0: Mask
                             |   |   |   1 = Masked
                             |   |   |   0 = Not masked
                             |   |   | * Disable/enable the dot clock generation PLL synthesizer program
                 ------------+---+---+----------------------------------------------
                 0020h       | R |   | Read graphic display status
                             |   |   | bit 15-8: Unused
                             |   |   | bit 7: Graphic screen display
                             |   |   |   0 = Display stopped
                             |   |   |   1 = Displayed
                             |   |   | bit 6-0: Unused
                 ------------+---+---+----------------------------------------------
                 0030h       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
                 0031h       | R |   | Read graphic GDC SYNC parameters
                 ------------+---+---+----------------------------------------------
                 0032h       | R |   | Read graphic GDC ZOOM parameters
                 ------------+---+---+----------------------------------------------
                 0033h       | R |   | Read graphic GDC CSRFORM parameters
                 ------------+---+---+----------------------------------------------
                 0034h       | R |   | Read graphic GDC PITCH parameters
                 ------------+---+---+----------------------------------------------
                 0035h       | R |   | Read graphic GDC VECTW parameters
                 ------------+---+---+----------------------------------------------
                 0036h       | R |   | Read graphic GDC SCROLL parameters
                 ------------+---+---+----------------------------------------------
                 0037h       | R |   | Read graphic GDC WRITE parameters
                 ------------+---+---+----------------------------------------------
                 0038h       | R |   | Read graphic GDC command
                             |   |   | bit 15-8: Unused?
                             |   |   | bit 7-0: Last command byte sent to G-GDC
                 ------------+---+---+----------------------------------------------
                 0040h       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
                 0041h       | R |   | Read various flags
                             |   |   | bit 15-13: Unused
                             |   |   | bit 12: Becomes 1 when [CTRL]+[GRPH]+[HELP] are pressed
                             |   |   | bit 11: Return from power save mode
                             |   |   | bit 10: Unknown
                             |   |   | bit 9: SMI request flag■[PC-9801NS/R and later]
                             |   |   | bit 8: Unknown
                             |   |   | bit 7: Unused
                             |   |   | bit 6: SMI request flag■[PC-9801NS/T]
                             |   |   | bit 5: Unknown
                             |   |   | bit 4: Unused
                             |   |   | bit 3: POWER button or LCD panel switch
                             |   |   | bit 2: Unused
                             |   |   | bit 1: Unknown
                             |   |   | bit 0: SMI request flag ■ [PC-9801NS/R and later]
                 ------------+---+---+----------------------------------------------
                 0044h       |   |   | Various flags
                             +---+---+----------------------------------------------
                             | R |   | bit 15,14: LCD panel related
                             |   |   |   00b = LCD panel is open
                             |   |   |   01b = LCD panel is open
                             |   |   |   10b = LCD panel is open
                             |   |   |   11b = LCD panel is closed
                             |   |   | bit 13-0: Unknown
                             +---+---+----------------------------------------------
                             | W |   | bit 15-11: Unknown
                             |   |   | bit 10: Power off processing
                             |   |   |   0 = Do not turn off power (normal)
                             |   |   |   1 = Turn off power
                             |   |   | bit 9: Unknown
                             |   |   |   0 = Outside the notebook menu
                             |   |   |   1 = In the Note menu
                             |   |   | bit 8-0: Unknown
                 ------------+---+---+----------------------------------------------
                 0045h       | W |   | Timer clear
                             |   |   | bit 15-2: Unknown
                             |   |   | bit 1: LCD light timer clear
                             |   |   |   1 = Clear
                             |   |   |   0 = Do not clear
                             |   |   | bit 0: Automatic power save timer clear
                             |   |   |   1 = Clear
                             |   |   |   0 = Do not clear
                             |   |   | Related INT 1Fh - Function 9E04h
                 ------------+---+---+----------------------------------------------
                 0046h-      | R |   | Unknown
                 0048h       |   |   |
                 ------------+---+---+----------------------------------------------
                 0047h       |R/W|   | Unknown
                 0048h       |   |   | Unknown
                 ------------+---+---+----------------------------------------------
                 0050h       | W |   | Power saving timer setting
                             |   |   | bit 15: Timer enabled
                             |   |   |   1 = Enable
                             |   |   |   0 = Disable
                             |   |   | bit 14,13: Timer period setting
                             |   |   |   11b = Unknown
                             |   |   |   10b = 1 minute
                             |   |   |   01b = 1 second
                             |   |   |   00b = 100 ms
                             |   |   | bit 12-8: Unused (set to 00000b)
                             |   |   | bit 7-0: Timer setting value
                             |   |   | * Depends on the period set by bit 14,13
                 ------------+---+---+----------------------------------------------
                 0052h       |R/W|   | Various LCD related settings
                             |   |   | bit 15-9: Unknown
                             |   |   | bit 8: LCD display
                             |   |   |   1 = OFF
                             |   |   |   0 = ON
                             |   |   | bit 7: LCD light
                             |   |   |   1 = ON
                             |   |   |   0 = OFF
                             |   |   | bit 8: Unused
                             |   |   | bit 6-1: Standby mode timer setting
                             |   |   |   * Minutes
                             |   |   | bit 0: Standby mode setting
                             |   |   |   1 = Enabled
                             |   |   |   0 = Disabled
                 ------------+---+---+----------------------------------------------
                 0054h       |R/W|   | Unknown
                 ------------+---+---+----------------------------------------------
                 0056h       |R/W|   | Power supply control for RS-232C driver/receiver
                             |   |   | bit 15-8: Unused
                             |   |   | bit 7-1: Unknown
                             |   |   | bit 0: Power supply to RS-232C
                             |   |   |   1 = Provided
                             |   |   |   0 = Not provided
                 ------------+---+---+---------------------------------------
                 0057h       |R/W|   | Unknown
                 ------------+---+---+---------------------------------------

                 ■[PC-9801NS/T only]
                 ------------+---+---+----------------------------------------------
                 F000h       |R/W|   | CPU operating clock setting
                             |   |   | bit 15-0: Operating clock
                             |   |   |   A000h = Maximum speed
                             |   |   |   A610h = Power saving mode
                             |   |   |   A620h = V30 mode
                             |   |   |   A630h = Unused (lowest speed with this setting)
                 ------------+---+---+----------------------------------------------
                 F002h       | R |   | Unknown
                 F004h       | R |   | Unknown
                 F006h       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
                 F008h       |R/W|   | 512K-640K space separation setting
                             |   |   | bit 15-0: Separation setting
                             |   |   |   0000h = Do not disconnect 512K to 640K
                             |   |   |   0003h = Disconnect 512K to 640K
                 ------------+---+---+----------------------------------------------
                 F00Ah       | W |   | Unknown
                             |   |   | bit 15-10: Unknown
                             |   |   | bit 9: Power off
                             |   |   |   0 = Do not power off
                             |   |   |   1 = Power off
                 ------------+---+---+----------------------------------------------
                 F00Ch       | R |   |
                 F00Dh       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
                 F00Eh       |R/W|   | SMRAM mapping control
                             |   |   | bit 15-0: Mapping control
                             |   |   |   0000h = Do not map SMRAM
                             |   |   |   0008h = Map SMRAM
                 ------------+---+---+----------------------------------------------
                 F010h       | R |   | Unknown
                 F201h       | R |   | Unknown
                 F202h       | R |   | Unknown
                 F204h       | R |   | Unknown
                 F208h       | R |   | Unknown
                 F20Ch       | R |   | Unknown
                 F20Eh       | R |   | Unknown
                 F300h       | R |   | Unknown
                 F302h       | R |   | Unknown
                 F400h       | R |   | Unknown
                 F401h       | R |   | Unknown
                 F402h       | R |   | Unknown
                 F404h       | R |   | Unknown
                 F406h       | R |   | Unknown
                 F408h       | R |   | Unknown
                 F409h       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
                 F40Ah       |R/W|   | Dedicated additional memory registration
                             |   |   | bit 15-0: Dedicated additional memory capacity
                             |   |   |   0113h = No dedicated additional memory
                             |   |   |   3333h = 6MB of dedicated additional memory
                             |   |   |   0133h = 2MB of dedicated additional memory
                             |   |   |   0113h = Undefined
                 ------------+---+---+----------------------------------------------
                 F40Ch       | R |   | CPU ID signature
                             |   |   | bit 15-0: CPU ID
                             |   |   |   5300h = i386SL(98) identification
                             |   |   |   * This value is fixed
                 ------------+---+---+----------------------------------------------
                 F40Eh       | R |   | Unknown
                 F40Fh       | R |   | Unknown
                 ------------+---+---+----------------------------------------------
Description    o Accesses the register of the power management controller specified by I/O 08F0h.
Related          I/O 08F0h